#ifndef ENTITY_H
#define ENTITY_H

#include <string>
#include "position.h"

namespace world {

class Entity
{
public:
    enum class EntityType {
        PLAYER,
        MONSTER,
        NPC,
        OBJECT
    };
    
    Entity(int id, EntityType type, const std::string& name);
    virtual ~Entity();
    
    int get_id() const;
    EntityType get_type() const;
    std::string get_name() const;
    
    const Position& get_position() const;
    void set_position(const Position& pos);
    
    virtual void update();
    
protected:
    int id_;
    EntityType type_;
    std::string name_;
    Position position_;
};

} // namespace world

#endif // ENTITY_H    